#include <iostream>
/**/

using namespace std;

class Point {
public:
    Point(float xval);
    virtual ~Point();

    float x() const;
    static int PointCount();

protected:
    virtual ostream& print(ostream &os) const;

    float _x;
    static int _point_count;
};
int Point::_point_count = 0;

Point::Point(float xval) {
    _x = xval;
    _point_count++;
}
Point::~Point() {
    cout << "disconstructed" << endl;
}
float Point::x() const {
    return _x;
}
int Point::PointCount() {
    return _point_count;
}
ostream& Point::print(ostream &os) const {
    os << "_x : " << _x << " counter : " << _point_count;
    return os;
}

int main() {
    cout << sizeof(Point);
}
